1. Field of the Invention
This invention relates to computer application development. More particularly, this invention relates to testing and optimization of applications in which there is disparity between the performance of a development environment and a target device.
2. Description of the Related Art
The meanings of acronyms and certain terminology used herein are given in Table 1. The terms Sun, Sun Microsystems, the Sun logo, Java, and J2ME are trademarks or registered trademarks of Sun Microsystems, Inc., in the United States of America and other countries. All other company and product names may be trademarks of their respective companies. A portion of the disclosure of this patent document contains material, which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by any one of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
TABLE 1APIApplication Programming InterfaceCLDCConnected Limited Device ConfigurationGUIGraphic User InterfaceJ2MEJava 2 Micro EditionMIDletApplications that use MIDP and CLDC API'sMIDPMobile Information Device ProfileROMRead-only Memory
Mobile information devices are an example of the target devices to which the present invention is applicable. The Mobile Information Device Profile (MIDP) defines a set of Java application programming interfaces (API's) that provide an application runtime environment for mobile information devices, such as cellular telephones. The MIDP is defined in the document Mobile Information Device Profile (JSR-37), JCP Specification, Java 2 Platform, Micro Edition, 1.0a (Sun Microsystems Inc., Palo Alto, Calif., December 2000), which is incorporated herein by reference. MIDP builds on the Connected Limited Device Configuration (CLDC) of the Java 2 Platform, Micro Edition (J2ME). MIDP applications that use the MIDP and CLDC API's are known as MIDlets.
Many target devices, for example mobile information devices, typically have a very small memory, low-speed graphics, and slow communications performance, when compared with personal computers. While programmers commonly develop applications using personal computers as development platforms, the memory and speed limitations of the target devices must be taken into account in order for the applications to run satisfactorily on the target devices. In particular, a critical optimization in a network-intensive distributed application, or one that is to be deployed on a slow connection, is that it should not use the network or connection any more than necessary. However, most development workstations and some deployment environments have network connections that are so fast that inefficiencies in such applications network usage are not clearly apparent during development. This disparity can cause poor performance on deployed applications. Optimization of an application's network usage early in development can ameliorate this problem.